//#include <iostream>
//#include "fib.h"
//
//long fib1(int n);
//
//long fib2(int n, long &prev);
//
//long fib3(int n);
//
//int main(int argc, char *argv[]) { //测试FIB
//    // 检查参数
//    if (2 > argc) {
//        printf("Usage: %s <rank>\n", argv[0]);
//        return 1;
//    }
//    int n = atoi(argv[1]);
//
//    // 依次计算Fibonacci数列各项
//    printf("\n------------- class Fib -------------\n");
//    Fib f(0);
//    for (int i = 0; i < n; i++, f.next())
//        printf("fib(%2d) = %d\n", i, f.get());
//
//
//
//    printf("\n------------- Iteration -------------\n");
//    for (int i = 0; i < n; i++)
//        printf("fib(%2d) = %22d\n", i, fib1(i));
//
//
//
//    printf("\n------------- Linear Recursion -------------\n");
//    for (int i = 0; i < n; i++) {
//        long f;
//        printf("fib(%2d) = %22d\n", 5, fib2(2, f));
//    }
//
//
//
//    printf("\n------------- Binary Recursion -------------\n");
//    for (int i = 0; i < n; i++)
//        printf("fib(%2d) = %22I64d\n", i, fib3(i));
//    return 0;
//}